import java.util.HashMap;

/**
 * Created with IDEA
 * author:ju bai
 * Date:2021/4/15
 * Time:15:10
 **/
public class Main2 {

    /**
     * 每日一题-找出数组中出现次数超过一半的数字
     *
     * @param array
     * @return
     */
    public int MoreThanHalfNum_Solution(int[] array) {
        HashMap<Integer, Integer> map = new HashMap<>();
        int len = array.length;
        if (len == 1) return array[0];//当只有一个数字时，返回这个数字
        for (int i = 0; i < len; i++) {
            int key = array[i];
            if (map.containsKey(key)) {//出现相同的数字时
                //当其大于数组的长度一半时，返回这个数字
                if (map.get(key) + 1 > len / 2) {//注意这里的+1表示当前出现的总次数需大于len/2
                    return key;
                } else {
                    map.replace(key, map.get(key) + 1);
                }
            } else {
                //走到这表示，map没有这个数字，加进去
                map.put(key, 1);
            }
        }
        return 0;
    }
}
